"""
   author: 陈亚敏
   data: 2021/11/24  9:40
   project: 1
"""
#1、输入数字n，输出n天前的日期（time或者datatime模块）
# from  datetime import *
# dt = datetime.now()
# n=int(input("你想知道几天前的日期？请输入数字："))
# dt2 =dt - timedelta(days=n)
# print(f"{n}天前的日期是：{dt2}")
#2、输出指定文件夹下有哪些文件或文件夹（实现ls命令， os）
# import os
# path=input("请输入你要查询的文件夹：")
# print(os.listdir(path))
#3、列表去重，并且从小到大排序
# a=[1,2,2,2,3,5,7,8,4,7,4,79]
# print(sorted(set(a)))
#4、如何在一个函数内部修改全局变量----------global
#5、如何跨模块共享全局变量
# import config
# config.aa=100
#其他模块代码：
# from test_code import one1124
# import config
# print(config.aa)
#6、python的基本数据类型有哪些？----数字，字符串，列表，集合，字典，元组
#7、python中生成随机整数（1-10），随机小数（1-10），随机小数（0-1）的方法
# import random
# a=random.randint(1,10)
# b=random.uniform(1,10)
# c=random.random()
# print(a)
# print(b)
# print(c)
#8、python中哪些是可变数据类型，哪些是不可变数据类型----可变：列表，集合，字典  不可变：整型，字符串，元组
#9、a+=1与a=a+1有什么区别----视数据类型是否可变而言，不可变这两者都改变内存地址，可变类型+=不改变，=+改变
# >>> c+=[1]
# >>> id(c)
# 140267516019976
# >>> c=c+[1]
# >>> id(c)
# 140267508683144
#10、什么是pep8？说出5点它的标准---等号两边空格，逗号后面空格，函数体下方代码空两格，每一级缩进使用4个空格，所有行限制的最大字符数为79
#11、给定一个字符串，找出字符串第一个重复的字符
# str1='fdsjbjkf354352398'
# for i in str1:
#     if str1.count(i)>1:
#         print(i)
#         break
#12、简述深拷贝与浅拷贝---浅拷贝：若拷贝对象是或包含可变数据类型，修改副本会改变原件，深拷贝不会出现这种现象
#13、简述python内存机制---内存中对象包含引用计数，数据类型，具体值几个部分，引用计数为0时内存将对象释放，
# 在内存中以引用计数为主，分代回收，标记清除为辅的内存管理机制，还有小整型缓存池和简单字符驻留区。
#14、使用python实现冒泡排序，快速排序
#快排：
# def quicksort(array):
#     recurse(array,0,len(array)-1)
#     return array
#
# def recurse(array,star,end):
#     if star>=end:
#         return
#     p=star
#     left=star+1
#     right=end
#     while left<=right:
#         if array[left]>array[p] and array[right]<array[p]:
#             array[left],array[right]=array[right],array[left]
#         if array[left]<=array[p]:
#             left+=1
#         if array[right]>=array[p]:
#             right-=1
#     array[p],array[right]=array[right],array[p]
#
#     list_left=right-star
#     list_right=end-left
#     if list_left<list_right:
#         recurse(array,star,right-1)
#         recurse(array,right+1,end)
#     else:
#         recurse(array, right + 1, end)
#         recurse(array, star, right - 1)
#
#
# array=[9,4,6,1,2,5]
# print(quicksort(array))

#冒泡：
# array=[9,4,6,1,2,5,43,47,232,8,1,861,2]
array=[2,1,3,4,5,6,7,8]
for i in range(len(array)):
    flag = 0
    for j in range(len(array)-1-i):
        if array[j]>array[j+1]:
            flag = 1
            array[j],array[j+1]=array[j+1],array[j]
        print(array)
    if flag == 0:
        break
#15、验证一个字符串是否属于回文（从左到右，从右到左都是一样）
# str1=input("请输入你要检测的字符串：")
# if str1==str1[::-1]:
#     print("是回文")
# else:
#     print("不是回文")